Computer-aided design (CAD) software allows a user to construct and manipulate design models representing complex three-dimensional (3D) objects. A number of different modeling techniques can be used to model a 3D object. These techniques include constructive solid geometry (CSG) modeling, boundary representation (BREP) modeling, and hybrid systems combining CSG and BREP modeling techniques. Other techniques are also known. CAD systems can combine basic modeling techniques with parametric modeling technologies that allow a model designer to define parameters interconnecting different components of a model. Parametric modeling can facilitate propagating changes among components.
A designer can model a 3D object from a collection of assemblies, subassemblies, and parts (collectively referred to as model xe2x80x9ccomponentsxe2x80x9d). Typically, a designer constructs these components (or obtains them from a library of pre-constructed components) and then brings the components together to form other components (i.e., assemblies) and, ultimately, to form the model. Each component may be stored as a separate computer document (i.e., a separate file in a local or distributed file system). Each component document can, in turn, reference other component documents. For example, in a model of a clock, the design of the different components of the clock (e.g., of the gears, the hands, and the housing) may be specified and stored in separate documents. The clock model, which is an assembly of these components, is formed using another data document that specifies relationships among these individual component documents (and possibly among other component documents). For example, a movement mechanism document can assemble the components of a clock movement mechanism by bringing together (using mating relationships) a collection of gear parts. The movement mechanism document (as well as, e.g., the design documents for the second and minute hands parts) may then be referenced by a clock assembly document. The clock assembly document may include mating relationships that interconnect the minute hand and second hand parts to the movement mechanism. In some cases, part and assembly documents can be referenced multiple times by other assembly documents. For example, the same gear design may be used four times in the clock""s movement mechanism; this would result in the gear part document being referenced four times in the movement mechanism document.
After the 3D model has been designed, the CAD system can make two-dimensional drawings of the modeled object and of its components. Drawings are 2D projected views of the 3D model. Drawings may be created for a variety of purposes, such as to show a machine operator or a product assembler how to make a part and how to assemble parts into a final product. Each drawing may be stored as a separate drawing document on the CAD system. Drawing documents are self-contained insofar as the 2D projected view represented by the drawing document""s data can be rendered (displayed) without having to access the various model documents used in the formation of the drawing document.
To create a drawing of an object, the CAD software constructs the model of the object from the various component documents referenced by the model""s document. This construction process includes accessing data in all document files that are referenced (directly or indirectly) by the model document. For example, in the case of the clock model, the CAD software (i) accesses the clock model document; (ii) accesses documents for components referenced in the clock model document (i.e., the movement mechanism, minute hand, second hand, and clock housing documents); (iii) accesses documents for components referenced in the movement mechanism document; (iv) constructs the 3D model from each of the accessed documents, (iv) generate a 2D projected view from the 3D model; (v) stores the 2D projected view in a drawing document.
Processes for producing 2D projected views from 3D models are known. In fact, because a computer display screen is a 2D output device, a designer will typically interact with the 3D model using 2D projected views shown on a display screen. A 2D projected view can be stored in the drawing document using a vector graphic format. Vector graphics are used to represent an image as a collection of lines, splines, polygons, bounded regions, and other two-dimensional shapes. Example vector graphic formats include the scalable vector graphics (SVG) file format, the Adobe Illustrator (AI) file format, the Adobe Portable Document Format (PDF), and others.
In general, in one aspect, the invention features a computer-implemented method for processing a design model generated by a computer aided design system. The method includes accessing model data (which includes a collection of separately stored data documents that detail construction of the design model from a collection of components), processing the model data to generate image elements representing a projected view of the design model and to generate tag data associating each of the image elements with at least one of the model components, and storing the image elements and the tag data in a drawing document.
In general, in another aspect, the invention features a computer-implemented method for processing a drawing document generated by a computer aided design system. The drawing document includes image elements (e.g., vector drawing data) that can be rendered to display a 2D projected view of a 3D model and tag data associating each image element with components of the design model (with at least two of the components referenced by the tag data being specified in separately stored data documents). The method includes processing the drawing document to display the view of a design model on a computer display terminal, receiving a user input selecting one of the image elements, receiving supplementary data, and linking the supplementary data to one of the model components based on the tag data associating the selected image element with the first model component.
Implementations may include one or more of the following features. The model components may be interrelated by a hierarchical data structure in which the hierarchical relationships detail a construction of the modeled object. The hierarchical data structure may be a tree structure that includes parent-child relationships between the model components. Each of the model components may detail numerous structural features. For example, a model component may detail structural features such as the edges, vertices, and surfaces (as well as three dimensional interconnections between these structural features) for a modeled part or assembly. The tag data can associate each image element with a structural feature of a model component. The image elements can include vector image drawing data (e.g., lines, polygons, poly-lines, and filled regions) enable a two-dimensional rendering of a 3D model.
Each of the model""s structural features (which includes each of the structural features from each of the model components) may be uniquely labeled by parametric data. The tag data may be derived from this parametric data (e.g., by copying the parametric data for use as the tag data, by creating pointers to the parametric data, by generating unique numeric references identifying the parametric data or indexing a table or database containing the parametric data, or by deriving URL or other file system paths that may incorporate all or parts of the parametric data to identifying a referenced structural feature).
In some implementations, supplementary data (e.g., an annotation) can be added to a drawing data file and associated with a particular structural feature of a model without requiring access to the model document or model component documents. Adding additional data to a drawing can include selecting one of the image data elements in the drawing, processing tag data to identify a structural feature associated with the first image data element (in some implementations, this processing may be accomplished by searching a table stored in the drawing document that matches image elements with parametric data), receiving the supplementary data, the supplementary data to the drawing data, and storing the supplemented drawing data. The supplemented drawing data may include the original (preannotated) drawing data, the supplementary data, and pointer data associating the supplementary data with components of the 3D design model (and/or with structural features of those components).
The supplementary data may be preserved when the drawing is updated (e.g., in response to changes in the underlying model or to a model component). This xe2x80x9cpreservationxe2x80x9d of the data refers, generally, to an ability to preserve relationships between supplementary data and drawing document image elements when the drawing document is updated (e.g., in response to a change in the underlying 3D model data). Preservation of the supplementary data can include processing updated model data to generate new drawing, extracting supplementary data from an existing drawing, and transferring the extracted supplementary data to the new drawing document. The process of transferring the supplementary data uses the tag data associated with the image elements in the original drawing and the tag data associated with the image elements in the updated drawing to maintain matchings between the supplementary data and the proper image elements.
In some implementations, the supplementary data can be an annotation identifying a desired change in a model component. For example, a user may add an annotation (e.g., a size value) indicating that a particular component should be reduced in size. Implementations can process this annotations by xe2x80x9cpushingxe2x80x9d the size value data from drawing data file to the model component itself to alter the model data in accordance with the identified change.
Implementations may include one or more of the following advantages. A user can send a drawing file to another CAD user without sending associated model files (i.e., model component files), while still permitting the other CAD user to annotate and change the model file. Annotations to a drawing file can be automatically maintained and updated as underlying model data is changed. Annotations in a drawing document can be fully associative (i.e. the annotations remain attached to particular structural features of the model when the drawing document changes in response to model changes). Drawing documents can be opened, and annotations can be attached to structural features of a 3D model without requiring access to other model documents. Users can control when a drawing is updated to the model (i.e. the synchronization process of the drawing documents is responsive may be controlled by the user). In other implementations, the synchronization process may be automatic.
The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the invention will be apparent from the description and drawings, and from the claims.